package html.elements;

import html.ParseErrors;

public class Doctype extends Node
{
	private Doctype(String text)
	{
		nodeType = NodeType.DOCTYPE;
		originalText = text;
	}

	public static Doctype getDoctype(String htmlText, ParseErrors errors)
	{
		int pos = htmlText.indexOf("<!DOCTYPE html");
		if (pos == -1)
		{
			errors.add("Нет элемента '<!DOCTYPE html'");
			return null;
		}
		if (pos > 0)
			errors.add("'<!DOCTYPE html' должен быть в самом начале страницы");

		int i = pos;
		for (; i < htmlText.length() && htmlText.charAt(i) != '>'; i++)
			if (htmlText.charAt(i) == '\'' || htmlText.charAt(i) == '"')
				i = htmlText.indexOf(htmlText.charAt(i), i + 1) - 1;
		if (i >= htmlText.length() && htmlText.charAt(i) != '>')
		{
			errors.add("Нет конца элемента 'DOCTYPE'");
			return null;
		}

		return new Doctype(htmlText.substring(pos, i));
	}
}
